<?php
/**
 * 博文管理
 */
Class BlogAction extends CommonAction
{

    //博文列表
    Public function index()
    {
        //relation(true) true代表模型里面关联所有的表，如果只是关联cate表relation('cate')
        //读取所需要的字段
//        $field = array("id","title","content","time","click");
//        $blog = D('BlogRelation') -> field($field) -> relation(true) -> select();
        //不读取所需要的字段,field里面填true即可
//        $field = array("del");
//        $where = array('del' => 0);
//        $this -> blog = D('BlogRelation') -> field($field,true) -> where($where) -> relation(true) -> select();
        $this -> blog = D('BlogRelation') -> getBlogs();
        $this -> display();
    }

    //删除到回收站/还原
    Public function toTrach(){
        $type = (int)$_GET['type'];
        $msg = $type ? '删除' : '还原';
        $update = array(
            'id' => (int)$_GET['id'],
            'del' => $type,
        );

//        M('blog') -> where(array('id' => (int)$_GET['id'])) -> setField('del',1);
        if(M('blog') ->save($update)){
            $this -> success($msg . '成功',U(GROUP_NAME . '/Blog/index'));
        }else{
            $this -> error($msg . '失败');
        }
    }

    //回收站
    public function trach() {
        $this -> blog = D('BlogRelation') -> getBlogs(1);
        $this -> display("index");
    }

    Public function delete(){
        $id = (int)$_GET['id'];
        if(M('blog') -> delete($id)){
            M('blog_attr') -> where(array('bid' => $id)) -> delete();
            $this -> success('删除成功',U(GROUP_NAME . '/Blog/trach'));
        }else{
            $this -> error('删除成功');
        }
    }
    //添加博文
    Public function blog()
    {
        //所属分类
        import('Class.Category',APP_PATH);
        $cate = M('cate') -> order('sort') -> select();
        $this -> cate = Category::unlimitedForLevel($cate);

        //博文属性
        $this -> attr = M('attr') -> select();
        $this->display();
    }

    //添加博文表单处理
    Public function addBlog(){
        $data = array(
            'title' => $_POST['title'],
            'content' => $_POST['content'],
            'time' => time(),
            'summary' => $_POST['summary'],
            'click' => (int)$_POST['click'],
            'cid' => (int)$_POST['cid'],
        );
        if($bid = M("blog") -> add($data)){
            if(isset($_POST['aid'])){
                $sql = 'INSERT INTO '.C('DB_PREFIX').'blog_attr (bid,aid) VALUES';
                foreach ($_POST['aid'] as $v){
                    $sql.='(' .$bid.','.$v.'),';
                }
                $sql = rtrim($sql,',');
                M('blog_attr') -> query($sql);
            }
            $this -> success('添加成功',U(GROUP_NAME.'/Blog/index'));
        }else{
            $this -> error('添加失败');
        }
    }

    //编辑器图片上传处理
    Public function upload(){
        import("ORG.Net.UploadFile");
        /*$config =   array(
            'maxSize'           =>  2000000,    // 上传文件的最大值 2M
            'supportMulti'      =>  true,    // 是否支持多文件上传
            'allowExts'         =>  array('jpeg','jpg','gif','png'),    // 允许上传的文件后缀 留空不作后缀检查
            'allowTypes'        =>  array(),    // 允许上传的文件类型 留空不做检查
            'thumb'             =>  true,    // 使用对上传图片进行缩略图处理
            'imageClassPath'    =>  'ORG.Util.Image',    // 图库类包路径
            'thumbMaxWidth'     =>  '50',// 缩略图最大宽度
            'thumbMaxHeight'    =>  '50',// 缩略图最大高度
            'thumbPrefix'       =>  'thumb_',// 缩略图前缀
            'thumbSuffix'       =>  '',
            'thumbPath'         =>  '',// 缩略图保存路径
            'thumbFile'         =>  '',// 缩略图文件名
            'thumbExt'          =>  '',// 缩略图扩展名
            'thumbRemoveOrigin' =>  false,// 是否移除原图
            'thumbType'         =>  1, // 缩略图生成方式 1 按设置大小截取 0 按原图等比例缩略
            'zipImages'         =>  false,// 压缩图片文件上传
            'autoSub'           =>  true,// 启用子目录保存文件
            'subType'           =>  'date',// 子目录创建方式 可以使用hash date custom
            'subDir'            =>  '', // 子目录名称 subType为custom方式后有效
            'dateFormat'        =>  'Ymd',
            'hashLevel'         =>  1, // hash的目录层次
            'savePath'          =>  '',// 上传文件保存路径
            'autoCheck'         =>  true, // 是否自动检查附件
            'uploadReplace'     =>  false,// 存在同名是否覆盖
            'saveRule'          =>  'uniqid',// 上传文件命名规则
            'hashType'          =>  'md5_file',// 上传文件Hash规则函数名
        );*/
        $upload = new UploadFile();
        $upload -> autoSub = true;
        $upload -> subType = 'date';
        $upload -> dateFormat = 'Ym';
        if($upload -> upload('./Uploads/')){
            $info = $upload -> getUploadFileInfo();
//            import('ORG.Util.Image');
//            Image::water('./Uploads/'.$info[0]['savename'],'./Data/logo.png');
            import("Class.Image",APP_PATH);
            Image::water('./Uploads/'.$info[0]['savename'],'./Data/logo.png');
            echo json_encode(array(
                'url' => $info[0]['savename'],
                'title' => htmlspecialchars($_POST['pictitle'], ENT_QUOTES),
                'original' => $info[0]['name'],
                'state' => 'SUCCESS',
            ));
        }else{
            echo json_encode(array(
                'state' => $upload -> getErrorMsg(),
            ));
        }
        //上传图片框中的描述表单名称，
       // $title = htmlspecialchars($_POST['pictitle'], ENT_QUOTES);
        /*{
            'url':'a.jpg',   //保存后的文件路径
            'title':'hello'  //文件描述，对图片来说在前端会添加到title属性上
            'original':'b.jpg',   //原始文件名
            'state':'SUCCESS',  //上传状态，成功时返回SUCCESS,其他任何值将原样返回至图片上传框中
        }*/
    }

}
